home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / src / interp / perl5.005.tar.gz / perl5.005.tar / perl5.005 / t / pragma / strict-subs < prev    next >
Text File  |  1998-03-05  |  5KB  |  280 lines

  1. Check strict subs functionality
  2.  
  3. __END__
  4.  
  5. # no strict, should build & run ok.
  6. Fred ;
  7. my $fred ;
  8. $b = "fred" ;
  9. $a = $$b ;
  10. EXPECT
  11.  
  12. ########
  13.  
  14. use strict qw(refs vars);
  15. Fred ;
  16. EXPECT
  17.  
  18. ########
  19.  
  20. use strict ;
  21. no strict 'subs' ;
  22. Fred ;
  23. EXPECT
  24.  
  25. ########
  26.  
  27. # strict subs - error
  28. use strict 'subs' ;
  29. Fred ;
  30. EXPECT
  31. Bareword "Fred" not allowed while "strict subs" in use at - line 4.
  32. Execution of - aborted due to compilation errors.
  33. ########
  34.  
  35. # strict subs - error
  36. use strict ;
  37. Fred ;
  38. EXPECT
  39. Bareword "Fred" not allowed while "strict subs" in use at - line 4.
  40. Execution of - aborted due to compilation errors.
  41. ########
  42.  
  43. # strict subs - no error
  44. use strict 'subs' ;
  45. sub Fred {}
  46. Fred ;
  47. EXPECT
  48.  
  49. ########
  50.  
  51. # Check compile time scope of strict subs pragma
  52. use strict 'subs' ;
  53. {
  54.     no strict ;
  55.     my $a = Fred ;
  56. }
  57. my $a = Fred ;
  58. EXPECT
  59. Bareword "Fred" not allowed while "strict subs" in use at - line 8.
  60. Execution of - aborted due to compilation errors.
  61. ########
  62.  
  63. # Check compile time scope of strict subs pragma
  64. no strict;
  65. {
  66.     use strict 'subs' ;
  67.     my $a = Fred ;
  68. }
  69. my $a = Fred ;
  70. EXPECT
  71. Bareword "Fred" not allowed while "strict subs" in use at - line 6.
  72. Execution of - aborted due to compilation errors.
  73. ########
  74.  
  75. # Check compile time scope of strict vars pragma
  76. use strict 'vars' ;
  77. {
  78.     no strict ;
  79.     $joe = 1 ;
  80. }
  81. $joe = 1 ;
  82. EXPECT
  83. Variable "$joe" is not imported at - line 8.
  84. Global symbol "$joe" requires explicit package name at - line 8.
  85. Execution of - aborted due to compilation errors.
  86. ########
  87.  
  88. # Check compile time scope of strict vars pragma
  89. no strict;
  90. {
  91.     use strict 'vars' ;
  92.     $joe = 1 ;
  93. }
  94. $joe = 1 ;
  95. EXPECT
  96. Global symbol "$joe" requires explicit package name at - line 6.
  97. Execution of - aborted due to compilation errors.
  98. ########
  99.  
  100. # Check runtime scope of strict refs pragma
  101. use strict 'refs';
  102. my $fred ;
  103. my $b = "fred" ;
  104. {
  105.     no strict ;
  106.     my $a = $$b ;
  107. }
  108. my $a = $$b ;
  109. EXPECT
  110. Can't use string ("fred") as a SCALAR ref while "strict refs" in use at - line 10.
  111. ########
  112.  
  113. # Check runtime scope of strict refs pragma
  114. no strict ;
  115. my $fred ;
  116. my $b = "fred" ;
  117. {
  118.     use strict 'refs' ;
  119.     my $a = $$b ;
  120. }
  121. my $a = $$b ;
  122. EXPECT
  123. Can't use string ("fred") as a SCALAR ref while "strict refs" in use at - line 8.
  124. ########
  125.  
  126. # Check runtime scope of strict refs pragma
  127. no strict ;
  128. my $fred ;
  129. my $b = "fred" ;
  130. {
  131.     use strict 'refs' ;
  132.     $a = sub { my $c = $$b ; }
  133. }
  134. &$a ;
  135. EXPECT
  136. Can't use string ("fred") as a SCALAR ref while "strict refs" in use at - line 8.
  137. ########
  138.  
  139. use strict 'subs' ;
  140. my $a = Fred ;
  141. EXPECT
  142. Bareword "Fred" not allowed while "strict subs" in use at - line 3.
  143. Execution of - aborted due to compilation errors.
  144. ########
  145.  
  146. --FILE-- abc
  147. my $a = Fred ;
  148. 1;
  149. --FILE-- 
  150. use strict 'subs' ;
  151. require "./abc";
  152. EXPECT
  153.  
  154. ########
  155.  
  156. --FILE-- abc
  157. use strict 'subs' ;
  158. 1;
  159. --FILE-- 
  160. require "./abc";
  161. my $a = Fred ;
  162. EXPECT
  163.  
  164. ########
  165.  
  166. --FILE-- abc
  167. use strict 'subs' ;
  168. my $a = Fred ;
  169. 1;
  170. --FILE-- 
  171. Fred ;
  172. require "./abc";
  173. EXPECT
  174. Bareword "Fred" not allowed while "strict subs" in use at ./abc line 2.
  175. Compilation failed in require at - line 2.
  176. ########
  177.  
  178. --FILE-- abc.pm
  179. use strict 'subs' ;
  180. my $a = Fred ;
  181. 1;
  182. --FILE-- 
  183. Fred ;
  184. use abc;
  185. EXPECT
  186. Bareword "Fred" not allowed while "strict subs" in use at abc.pm line 2.
  187. Compilation failed in require at - line 2.
  188. BEGIN failed--compilation aborted at - line 2.
  189. ########
  190.  
  191. # Check scope of pragma with eval
  192. no strict ;
  193. eval {
  194.     my $a = Fred ;
  195. };
  196. print STDERR $@;
  197. my $a = Fred ;
  198. EXPECT
  199.  
  200. ########
  201.  
  202. # Check scope of pragma with eval
  203. no strict ;
  204. eval {
  205.     use strict 'subs' ;
  206.     my $a = Fred ;
  207. };
  208. print STDERR $@;
  209. my $a = Fred ;
  210. EXPECT
  211. Bareword "Fred" not allowed while "strict subs" in use at - line 6.
  212. Execution of - aborted due to compilation errors.
  213. ########
  214.  
  215. # Check scope of pragma with eval
  216. use strict 'subs' ;
  217. eval {
  218.     my $a = Fred ;
  219. };
  220. print STDERR $@;
  221. my $a = Fred ;
  222. EXPECT
  223. Bareword "Fred" not allowed while "strict subs" in use at - line 5.
  224. Bareword "Fred" not allowed while "strict subs" in use at - line 8.
  225. Execution of - aborted due to compilation errors.
  226. ########
  227.  
  228. # Check scope of pragma with eval
  229. use strict 'subs' ;
  230. eval {
  231.     no strict ;
  232.     my $a = Fred ;
  233. };
  234. print STDERR $@;
  235. my $a = Fred ;
  236. EXPECT
  237. Bareword "Fred" not allowed while "strict subs" in use at - line 9.
  238. Execution of - aborted due to compilation errors.
  239. ########
  240.  
  241. # Check scope of pragma with eval
  242. no strict ;
  243. eval '
  244.     Fred ;
  245. '; print STDERR $@ ;
  246. Fred ;
  247. EXPECT
  248.  
  249. ########
  250.  
  251. # Check scope of pragma with eval
  252. no strict ;
  253. eval q[ 
  254.     use strict 'subs' ;
  255.     Fred ;
  256. ]; print STDERR $@;
  257. EXPECT
  258. Bareword "Fred" not allowed while "strict subs" in use at (eval 1) line 3.
  259. ########
  260.  
  261. # Check scope of pragma with eval
  262. use strict 'subs' ;
  263. eval '
  264.     Fred ;
  265. '; print STDERR $@ ;
  266. EXPECT
  267. Bareword "Fred" not allowed while "strict subs" in use at (eval 1) line 2.
  268. ########
  269.  
  270. # Check scope of pragma with eval
  271. use strict 'subs' ;
  272. eval '
  273.     no strict ;
  274.     my $a = Fred ;
  275. '; print STDERR $@;
  276. my $a = Fred ;
  277. EXPECT
  278. Bareword "Fred" not allowed while "strict subs" in use at - line 8.
  279. Execution of - aborted due to compilation errors.
  280.